home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / documents / OpenGL / README < prev    next >
Text File  |  1996-11-11  |  40KB  |  888 lines

  1.  
  2.               OpenGL Documentation and Technical Information
  3.  
  4. ----------------------------------------------------------------------------
  5.                    Other OpenGL "haunts" on the Toolbox:
  6.  
  7.    OpenGL: FROM THE EXTENSIONS TO THE SOLUTIONS Training Course materials
  8.                       :  toolbox/src/tutorials/OGLT
  9.    OpenGL example source code tree    :  toolbox/src/exampleCode/opengl
  10.    OpenGL 1 & 2 classes source trees  :  toolbox/src/tutorials/custEducation
  11.    OpenGL demo source code tree       :  toolbox/src/demos/OpenGL
  12.    -------------------------------------------------------------------------
  13.  
  14.  
  15. Current OpenGL Specifications
  16.  
  17.    * OpenGL Specification, Version 1.1, December 21, 1995
  18.    * GLU Specification, October, 1993
  19.    * GLX Specification, Version 1.1, January 1, 1995
  20.    * Extensions, current as of March 28, 1996
  21.    * GLC Specification, Version 0.2, December 1995
  22.  
  23. OpenGL Extensions
  24.  
  25.    * OpenGL on Silicon Graphics Systems, March, 1996, includes the relevant
  26.      chapters:
  27.         o Chapter 5: Introduction to OpenGL Extensions
  28.         o Chapter 6: Texturing Extensions
  29.         o Chapter 7: Imaging and Blending Extensions
  30.         o Chapter 8: Miscellaneous OpenGL Extensions
  31.         o Chapter 9: Extensions to GLX
  32.    * OpenGL: FROM THE EXTENSIONS TO THE SOLUTIONS Training Course materials,
  33.      including:
  34.         o OpenGL EXTensions Naming Conventions
  35.         o EXTensions on IMPACT
  36.         o Rendering EXTensions
  37.         o Resource Control EXTensions
  38.         o Imaging EXTensions
  39.         o Texturing EXTensions
  40.         o OpenGL Extension Specifications
  41.    * OpenGL extensions documents grabbed from
  42.      sgigate.sgi.com:~ftp/pub/opengl
  43.  
  44. OpenGL IRIX 6.2-based documents
  45.  
  46.    * GLR, an OpenGL render server facility
  47.    * OpenGL Render Serving with GLR
  48.    * OpenGL Render Serving "Frequently Asked Questions"
  49.  
  50. OpenGL papers:
  51.  
  52.    * The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3,
  53.      February, 1996 from the GLUT 3.1 Distribution in the 
  54.      src/exampleCode/opengl source tree
  55.    * ever-growing series on GLUT, an OpenGL Utility Toolkit,
  56.      in the OpenGL and X Column from The X Journal:
  57.         o Column 1: An OpenGL Toolkit, December, 1994
  58.         o Column 2: Let there be light!, January/February, 1995
  59.         o Column 3: Texture Mapping, March/April, 1995
  60.         o Column 4: Blending, Antialiasing, And Fog, May/June, 1995
  61.         o Column 5: Extensions To OpenGL, July/August, 1995
  62.         o Column 6: Hardware For Accelerating OpenGL, September/October,
  63.           1995
  64.         o Column 7: Using Open Inventor with GLUT, November/December, 1995
  65.         o Column 8: Curves and Surfaces in OpenGL, January/February, 1996
  66.         o Column 9: EXIT: A 3D standard for X (finally!), March/April, 1996
  67.    * System Support for OpenGL Direct Rendering, September, 1994
  68.    * 3-part series on OpenGL and X, from The X Journal:
  69.         o Part 1: An Introduction, November/December, 1993
  70.         o Part 2: Using OpenGL with Xlib, January/February, 1994
  71.         o Part 3: Integrating OpenGL with Motif, July/August, 1994
  72.         o browse example source dir's contents
  73.         o download compressed tar image [29K] of all 3 articles accompanying
  74.           example src code
  75.    * X Server Multi-rendering for OpenGL and PEX, 8th X Technical
  76.      Conference, January, 1994
  77.  
  78. Various OpenGL documentation:
  79.  
  80.    * OpenGL on Silicon Graphics Systems, March, 1996
  81.    * OpenGL Man Pages (from the EXTensions to the SOLutions Training Course)
  82.    * Notes on Porting RealityEngine Applications to OpenGL, April 20, 1995
  83.    * support for VGX, Personal IRIS, 64-bit, and FORTRAN, 9/19/94
  84.    * The Three DSOs Currently (as of 10/94) supporting the OpenGL core
  85.    * Implementation Notes for OpenGL Programmers, July, 1994
  86.    * OpenGL Widget Man Pages [4]
  87.    * OpenGL FAQ, or (may be more current), outside in Web-lan'
  88.    * IrisGL-to-OpenGL mapping of routines
  89.      --> see also Some IRIS GL Functionality and OpenGL Equivalents
  90.      (from Appendix A: OpenGL and IRIS GL in the OpenGL on Silicon Graphics
  91.      Systems Manual)
  92.    * Proposal for an OpenGL FORTRAN Binding, September, 1994
  93.    * How OpenGL differs from IrisGL, May, 1992
  94.  
  95. OpenGL tutorials:
  96.  
  97.    * OpenGL: The Graphics Standard, 11/94
  98.    * OpenGL and X, A Technical Overview of OpenGL and the X Window System, 1/94
  99.    * How OpenGL integrates with the X Window System, 1/94
  100.    * The OpenGL Graphics Interface, (introduction to OpenGL)
  101.    * The Design of OpenGL Graphics Interface, (philosphy and details)
  102.  
  103. ----------------------------------------------------------------------------
  104.  
  105. Document Abstracts/Overviews:
  106.  
  107. ----------------------------------------------------------------------------
  108.  
  109.    * OpenGL Specification:
  110.      The OpenGL Graphics System: A Specification, Version 1.1, December, 21,
  111.      1995
  112.           Version 1.1:
  113.              + html format
  114.              + compressed PostScript (193 pages)
  115.  
  116.      Introduction:
  117.  
  118.      This document describes the OpenGL graphics system: what it is, how it
  119.      acts, and what is required to implement it. We assume that the reader
  120.      has at least a rudimentary understanding of computer graphics. This
  121.      means familiarity with the essentials of computer graphics algorithms
  122.      as well as familiarity with basic graphics hardware and associated
  123.      terms.
  124.  
  125.      What is the OpenGL Graphics System?
  126.  
  127.      OpenGL (for "Open Graphics Library") is a software interface to
  128.      graphics hardware. The interface consists of a set of several hundred
  129.      procedures and functions that allow a programmer to specify the objects
  130.      and operations involved in producing high-quality graphical images,
  131.      specifically color images of three-dimensional objects.
  132.  
  133.      Most of OpenGL requires that the graphics hardware contain a
  134.      framebuffer. Many OpenGL calls pertain to drawing objects such as
  135.      points, lines, polygons, and bitmaps, but the way that some of this
  136.      drawing occurs (such as when antialiasing or texturing is enabled)
  137.      relies on the existence of a framebuffer. Further, some of OpenGL is
  138.      specifically concerned with framebuffer manipulation.
  139.  
  140. ----------------------------------------------------------------------------
  141.  
  142.    * GLU Specification:
  143.      The OpenGL(TM) Graphics System Utility Library, October 8, 1993
  144.         o compressed PostScript format (16 pages)
  145.  
  146.      Overview:
  147.  
  148.      The GL Utilities (GLU) library is a set of routines designed to
  149.      complement the OpenGL(TM) graphics system by providing support for
  150.      mipmapping, matrix manipulation, polygon tessellation, quadrics, NURBS,
  151.      and error handling. Mipmapping routines include image scaling and
  152.      automatic mipmap generation. A variety of matrix manipulation functions
  153.      build projection and viewing matrices, or project vertices from one
  154.      coordinate system to another. Polygon tessellation routines convert
  155.      concave polygons into triangles for easy rendering. Quadrics support
  156.      renders a few basic quadrics such as spheres and cones. NURBS code maps
  157.      complicated NURBS curves and trimmed surfaces into simpler OpenGL
  158.      evaluators. Lastly, an error lookup routine translates OpenGL and GLU
  159.      error codes into strings.
  160.  
  161. ----------------------------------------------------------------------------
  162.  
  163.    * GLX Specification:
  164.      OpenGL Graphics with the X Window System, Version 1.1, January 1, 1995
  165.         o html format
  166.         o compressed PostScript (24 pages)
  167.  
  168.      Overview:
  169.  
  170.      This document describes GLX, the OpenGL extension to the X Window
  171.      System. It refers to concepts discussed in the OpenGL specification,
  172.      and may be viewed as an X specific appendix to that document. Parts of
  173.      the document assume some acquaintance with both the OpenGL and X.
  174.  
  175.      In the X Window System, OpenGL rendering is made available as an
  176.      extension to X in the formal X sense: connection and authentication are
  177.      accomplished with the normal X mechanisms. As with other X extensions,
  178.      there is a defined network protocol for the OpenGL rendering commands
  179.      encapsulated within the X byte stream.
  180.  
  181.      Since performance is critical in 3D rendering, there is a way for
  182.      OpenGL rendering to bypass the data encoding step, the data copying,
  183.      and interpretation of that data by the X server. This direct rendering
  184.      is possible only when a process has direct access to the graphics
  185.      pipeline. Allowing for parallel rendering has affected the design of
  186.      the GLX interface. This has resulted in an added burden on the client
  187.      to explicitly prevent parallel execution when that is inappropriate.
  188.  
  189.      X and the OpenGL have different conventions for naming entry points and
  190.      macros. The GLX extension adopts those of the OpenGL.
  191.  
  192. ----------------------------------------------------------------------------
  193.  
  194.    * GLC Specification:
  195.      OpenGL Character Renderer: A Specification Version 0.2, 26 Dec 1995
  196.         o html format
  197.         o compressed PostScript (28 pages)
  198.  
  199.      Introduction
  200.  
  201.      This document defines the OpenGL Character Renderer (GLC), a state
  202.      machine that provides OpenGL programs with character rendering services
  203.      via an application programming interface (API). This document is
  204.      written with the assumption that the reader understands the OpenGL
  205.      specification.
  206.  
  207.      Section 1 provides an overview of GLC, examples of its use, and a
  208.      comparison with other character rendering services. Section 2 defines
  209.      the GLC machine, Section 3 defines the GLC API, and Section 4 covers
  210.      future extensions to GLC.
  211.  
  212. ----------------------------------------------------------------------------
  213.  
  214.    * OpenGL on Silicon Graphics Systems, March 1996
  215.         o HTML format
  216.         o PostScript:
  217.           complete book as single file:
  218.              + compressed PostScript (362 pages)
  219.           each chapter/section as a separate file:
  220.              + Table of Contents with the introduction from each chapter
  221.  
  222.           NOTE: On the cover page of the complete book as a single
  223.           PostScript file, it says "Early Access Release, November
  224.           1995". The chapters-as-separate-files accessible via the
  225.           Table of Contents link are PostScript versions of the IRIX
  226.           6.2-release version. Other than indistinguishable "polish"
  227.           applied to the chapters as individual files, the two versions
  228.           ARE identical.
  229.  
  230.      from the beginning of About This Guide:
  231.  
  232.      OpenGL on Silicon Graphics Systems explains how to use the OpenGL
  233.      graphics library on Silicon Graphics Systems. The guide expands on the
  234.      OpenGL Programming Guide, which describes implemetation-independent
  235.      aspects of OpenGL. It discusses these major topics:
  236.  
  237.         o Integrating OpenGL programs with the X Window System
  238.  
  239.         o Using OpenGL extensions
  240.  
  241.         o Debugging OpenGL Programs
  242.  
  243.         o Achieving maximum performance
  244.  
  245.      What This Guide Contains
  246.  
  247.      This guide consists of 14 chapters and 3 appendixes:
  248.  
  249.         o Chapter 1, "OpenGL on Silicon Graphics Systems," introduces the
  250.           major issues involved in using OpenGL on Silicon Graphics systems.
  251.  
  252.         o Chapter 2, "Using OpenGL and X: Getting Started," first provides
  253.           background information for working with OpenGL and the X Window
  254.           System. You then learn how to display some OpenGL code in an X
  255.           window with the help of a simple example program.
  256.  
  257.         o Chapter 3, "OpenGL and X: Examples," first presents two example
  258.           programs that illustrate how to create a window using IRIS IM or
  259.           Xlib. It then explains how to integrate text with your OpenGL
  260.           program.
  261.  
  262.         o Chapter 4, "OpenGL and X: Advanced Topics," helps you refine your
  263.           programs. It discusses how to use overlays and popups. It also
  264.           provides information about pixmaps, visuals and colormaps, and
  265.           animation.
  266.  
  267.         o Chapter 5, "Introduction to OpenGL Extensions," explains what
  268.           OpenGL extensions are and how to check for OpenGL and GLX
  269.           extension availability.
  270.  
  271.         o Chapter 6, "Texturing Extensions," explains how to use the
  272.           texturing extensions, providing example code as appropriate.
  273.  
  274.         o Chapter 7, "Imaging and Blending Extensions," explains how to use
  275.           extensions for color conversion (abgr, color table, color matrix),
  276.           the convolution extension, the histogram/minmax extension, the
  277.           packed pixel extension, and four color blending extensions.
  278.  
  279.         o Chapter 8, "Miscellaneous OpenGL Extensions," explains how to use
  280.           the polygon offset extension, the vertex array extension, and the
  281.           multisampling extension.
  282.  
  283.         o Chapter 9, "Extensions to GLX," explains how to use extensions to
  284.           GLX, the OpenGL extension to the X Window System.
  285.  
  286.         o Chapter 10, "Debugging OpenGL Programs," explains how to use the
  287.           OpenGL debugger (ogldebug) and provides some debugging hints.
  288.  
  289.         o Chapter 11, "Tuning Graphics Applications: Fundamentals,"
  290.           discusses basic principles of tuning graphics applications:
  291.           pipeline tuning, tuning animations, optimizing cache and memory
  292.           use, and benchmarking.
  293.  
  294.         o Chapter 12, "Tuning the Pipeline," explains how to tune the
  295.           different parts of the graphics pipeline for an OpenGL program.
  296.           Example code fragments illustrate how to write your program for
  297.           optimum performance.
  298.  
  299.         o Chapter 13, "Tuning Graphics Applications: Examples," provides a
  300.           detailed discussion of the tuning process for a small example
  301.           program. It also provides a code fragment that's helpful for
  302.           drawing pixels fast.
  303.  
  304.         o Chapter 14, "System-Specific Tuning," provides information on
  305.           tuning some specific Silicon Graphics systems: low-end systems,
  306.           IMPACT systems, and Reality Engine systems.
  307.  
  308.         o Appendix A, "OpenGL and IRIS GL," helps you port your IRIS GL
  309.           program to OpenGL by providing a table that contrasts IRIS GL
  310.           functions and equivalent OpenGL functionality (including
  311.           extensions).
  312.  
  313.         o Appendix B, "Benchmarks," lists a sample benchmarking program.
  314.  
  315.         o Appendix C, "Benchmarking Libraries: libpdb and libisfast,"
  316.           discusses two libraries you can use for benchmarking drawing
  317.           operations and maintaining a database of the results.
  318.  
  319.      Note that although this guide contains information useful to developers
  320.      porting from IRIS GL to OpenGL, the primary source of information for
  321.      porting is the OpenGL Porting Guide, available from Silicon Graphics
  322.      (or via the IRIS Insight viewer online).
  323.  
  324. ----------------------------------------------------------------------------
  325.  
  326.    * GLR, an OpenGL render server facility
  327.         o html format
  328.         o compressed PostScript (18 pages)
  329.         o compressed showcase (31 slides), 2/14/96; talk given at X Tech
  330.           Conf '96
  331.         o compressed showcase (31 slides), 6/29/95; talk given at SGI
  332.  
  333.           NOTE: GLR software is only available on IRIX 6.2. To program
  334.           and experiment with GLR, load the gl_dev.sw.samples subsytem
  335.           which contains man pages and two necessary header files,
  336.           /usr/include/GL/{glr.h,glrproto.h}.
  337.  
  338.      Abstract:
  339.  
  340.      GLR is a network-extensible render service providing OpenGL rendering
  341.      into rectangular frame buffer regions. GLR virtualizes access to fast,
  342.      high-quality, but expensive rendering hardware for purposes such as
  343.      image processing, printing, frame buffer calculations, and off-loaded
  344.      high-quality rendering.
  345.  
  346.      In particular, off-loaded rendering using GLR permits expensive
  347.      high-end graphics hardware to be shared and amortized across a group of
  348.      users on a local area network. Hybrid GLR programs for applications
  349.      like computer-aided design and scientific visualization can use local
  350.      OpenGL rendering for dynamic, interactive 3D graphics, then use GLR to
  351.      render higher-quality static scenes (enabling higher tessellation,
  352.      high-quality texturing, antialiasing, etc.) with sub-second latency.
  353.  
  354.      GLR's approach is novel because access to the rendering hardware is
  355.      virtualized using render intervals allowing guaranteed access to the
  356.      frame buffer resources for a client-requested duration. GLR is
  357.      implemented as a client library and a specialized X window manager that
  358.      schedules render intervals. Unlike a traditional window manager, the
  359.      GLR window manager policy controls the mapping and unmapping of windows
  360.      to effect the render interval policy. GLR demonstrates that the X
  361.      Window System model is adaptable for uses other than the traditional
  362.      window system.
  363.  
  364. ----------------------------------------------------------------------------
  365.  
  366.    * OpenGL Render Serving with GLR:
  367.  
  368.      GLR is an OpenGL based render facility. GLR is a mechanism to share
  369.      expensive graphics hardware resources between users on a network. The
  370.      idea is to amortize the hardware among multiple users to bring
  371.      high-quality rendering to a larger application and user audience.
  372.      Imagine a network of Indy workstations that use their local graphics
  373.      acceleration for most interactive tasks, but can fallback to GLR on a
  374.      RealityEngine or InfiniteReality for extremely high-quality rendering.
  375.  
  376.      This documents (last updated 2/15/96) hails from
  377.      http://reality.sgi.com/employees/mjk_asd/onyx_on_an_indy.html
  378.      -- always reference the above link, for the most current, up-to-date
  379.      version of this page.
  380.  
  381. ----------------------------------------------------------------------------
  382.  
  383.    * GLR Render Serving Frequently Asked Questions
  384.  
  385.      Render serving with GLR is a new application market for Onyx machines
  386.      with InfiniteReality and RealityEngine graphics. GLR makes it possible
  387.      to amoritize the cost of an Onyx across a group of users on a network
  388.      by providing OpenGL rendering as a networked service. Here are set of
  389.      30 frequently asked questions about GLR (last updated, May 10, 1996).
  390.  
  391. ----------------------------------------------------------------------------
  392.  
  393.    * OpenGL and X, Column 1: An OpenGL Toolkit, December, 1994
  394.         o html format
  395.         o compressed PostScript (5 pages)
  396.  
  397.      From the "Opener":
  398.  
  399.      Because OpenGL is window-system independent (the OpenGL API can work
  400.      just as well for X as it does for Windows NT or OS/2), an OpenGL
  401.      program uses the window management functions of its host window system.
  402.      In the ``red'' book [see
  403.      toolbox/src/tutorials/custEducation/opengl1/demos/OGLPG/, --DTjanitor],
  404.      OpenGL examples were presented using the AUX library. AUX is a
  405.      window-system independent toolkit for using OpenGL. The AUX interface
  406.      lets you open a single window, render OpenGL, and handle basic input,
  407.      but that is about the extent of its functionality. It's good for
  408.      examples but not appropriate for anything much more sophisticated.
  409.  
  410.      Two alternatives to AUX are using Motif or Xlib to write your OpenGL
  411.      applications. Either alternative works. In practice, Motif is likely to
  412.      be the window system API most X programmers will use for sophisticated
  413.      OpenGL applications. Unfortunately, both Motif and Xlib are rather
  414.      complex. Many programmers wishing to explore 3D graphics with OpenGL
  415.      will want something in between the toyish feel of AUX and the
  416.      complexity of Motif or Xlib. That's where this issue's column helps
  417.      out: supplying a reasonable toolkit to explore OpenGL. Future columns
  418.      will use the described toolkit to demonstrate specific OpenGL
  419.      functionality like lighting and texturing.
  420.  
  421.      The toolkit I describe is named GLUT, short for the openGL Utility
  422.      Toolkit. The API for GLUT is designed to be simple and straightforward.
  423.      Unlike more complex APIs like Xlib or Motif, very little setup is
  424.      needed to begin displaying graphics. Also the GLUT API avoids obvious
  425.      window system dependencies. The intent is that a GLUT program could be
  426.      recompiled for OS/2 or NT if a GLUT implementation for those window
  427.      systems was available.
  428.  
  429. ----------------------------------------------------------------------------
  430.  
  431.    * OpenGL and X, Column 2: Let there be light!, January/February, 1995
  432.         o compressed PostScript format (10 pages)
  433.  
  434.      The source in this articles spans pp. 6-10, and is located in:
  435.      toolbox/src/exampleCode/opengl/GLUT/progs/examples/lightlab.c
  436.  
  437.      Excerpts:
  438.  
  439.      In this column, I use GLUT to demonstrate OpenGL's support for lighting
  440.      as a technique to improve the realism of OpenGL generated graphics.
  441.  
  442.      When generating 3D graphics on a computer, realism is almost always an
  443.      underlying goal. If the 3D image is to be effective, it needs to convey
  444.      a sense of realism to the viewer. Lighting is a means to improve the
  445.      realism of a 3D scene. . . .
  446.  
  447.      The code in Appendix A is for a GLUT program named lightlab that allows
  448.      you to change the material and lighting characteristics of a scene
  449.      containing a teapot, a torus, and an icosahedron. The objects in the
  450.      scene can be rendered to appear to be made of brass, red plastic,
  451.      emerald, or slate. Two directional lights coming from the left and
  452.      right can shine red, white, green, or not at all.... GLUT menus are
  453.      used to control the various lighting parameters. The program's source
  454.      code is a good start for exploring OpenGL lighting features.
  455.  
  456. ----------------------------------------------------------------------------
  457.  
  458.    * OpenGL and X, Column 3: Texture Mapping, March/April, 1995
  459.         o compressed PostScript format (10 pages)
  460.  
  461.      The source in this article spans pp. 6-10, and is located in:
  462.      toolbox/src/exampleCode/opengl/GLUT/progs/examples/mjkwarp.c
  463.  
  464.      Excerpts:
  465.  
  466.      An important technical reason behind OpenGL's success is its required
  467.      support of advanced rendering features like texture mapping. The focus
  468.      of this issue's column is to explain texture mapping for OpenGL. Like
  469.      previous columns, the OpenGL Utility Toolkit (GLUT) is used in the
  470.      column's example program.
  471.  
  472.      [Topics explored include:]
  473.  
  474.         o What is Texture Mapping?
  475.         o Using Textures with OpenGL
  476.              + Enabling texturing
  477.              + Specifying a texture
  478.              + Specifying texture modes
  479.              + Rendering textured primitives
  480.              + More texturing features
  481.         o An Example
  482.           The mjkwarp example program listed at the end of the article
  483.           demonstrates using texture mapping to rotate, contort, and shatter
  484.           a 2D image, all while the image spins. The effects are reminiscent
  485.           of MTV video effects. The point of these effects is to demonstrate
  486.           a few of the possibilities texture mapping permits. Figure 4 shows
  487.           mjkwarp in its various texturing modes:
  488.              + Elastic sheet
  489.              + Spinning cube
  490.              + Rotating squares
  491.         o Conclusions
  492.         o References
  493.  
  494. ----------------------------------------------------------------------------
  495.  
  496.    * OpenGL and X, Column 4: Blending, Antialiasing, And Fog, May/June, 1995
  497.         o compressed PostScript format (7 pages)
  498.  
  499.      The source in this article spans pp. 5-10, and is located in:
  500.      toolbox/src/exampleCode/opengl/GLUT/progs/examples/blender.c
  501.  
  502.      Excerpts:
  503.  
  504.      This month's column continues to survey OpenGL rendering features [and]
  505.      is about OpenGL's blending operations for effects like translucency,
  506.      antialiasing, and atmospheric effects like fog.
  507.  
  508.      [Topics explored include:]
  509.  
  510.         o Alpha and Blending
  511.         o Uses for Blending
  512.         o Antialiasing through Blending
  513.         o Fog and Atmospheric Effects
  514.         o Hints
  515.  
  516. ----------------------------------------------------------------------------
  517.  
  518.    * OpenGL and X, Column 5: Extensions To OpenGL, July/August, 1995
  519.         o compressed PostScript format (9 pages)
  520.  
  521.      The source in this article spans pp. 5-10, and is located in:
  522.      toolbox/src/exampleCode/opengl/GLUT/progs/examples/origami.c
  523.  
  524.      Excerpts:
  525.  
  526.      Previous OpenGL columns surveyed interesting aspects of OpenGL's core
  527.      rendering functionality. This column is different; it focuses on how
  528.      OpenGL implementations are being extended for even better rendering
  529.      functionality.
  530.  
  531.      [Topics explored include:]
  532.  
  533.         o OpenGL Extension Naming
  534.         o Available Extensions
  535.         o Extension Interoperability
  536.         o An Extension Example
  537.           This column's example folds and unfolds a paper airplane as the
  538.           airplane spins in 3D. The origami program works by modeling the
  539.           paper airplane using eight polygons as pictured in Figure 1. The
  540.           program then translates and rotates these polygons to animate the
  541.           folding and unfolding of the paper plane. The airplane polygons
  542.           are rendered in a single color, so outlines around each polygon
  543.           help delineate the folds and edges of the airplane.
  544.         o GLX Extensions
  545.         o Extensions as OpenGL's Future
  546.  
  547. ----------------------------------------------------------------------------
  548.  
  549.    * OpenGL and X, Column 6: Hardware For Accelerating OpenGL,
  550.      September/October, 1995
  551.         o html format
  552.         o compressed PostScript (11 pages)
  553.  
  554.      Excerpts:
  555.  
  556.      The last five OpenGL columns discussed OpenGL programming techniques
  557.      and explained source code examples. This feature article is not about
  558.      programming, but instead explores the ways graphics hardware can
  559.      accelerate OpenGL rendering. The intent is to provide you with enough
  560.      knowledge about 3D graphics hardware architecture to evaluate and
  561.      select the right graphics hardware for your needs and budget.
  562.  
  563.      [Topics explored include:]
  564.  
  565.         o The Graphics Pipeline
  566.                  1. Generation
  567.                  2. Traversal
  568.                  3. Transformation
  569.                  4. Rasterization
  570.                  5. Display
  571.              + A Taxonomy for Graphics Hardware
  572.              + Rendering Paths
  573.         o Hardware for OpenGL
  574.              + Display Options
  575.                   + Pixel Formats
  576.                   + Double Buffering
  577.                   + Overlays
  578.                   + Multiple Colormaps
  579.                   + Per-window Stereo
  580.              + Rasterization
  581.                   + Primitive Decomposition
  582.                   + Texturing and Fog
  583.                   + Per-fragment Operations
  584.              + Transformaing Geometry
  585.                        + Modeling transformation
  586.                        + Lighting calculations
  587.                        + Projection transformation
  588.                        + Clip testing
  589.                        + Perspective division
  590.                        + Viewport transformation
  591.                   + Pipelining and Parallelism
  592.                   + Types of Parallelism
  593.              + Hardware for Window System Requirements
  594.                   + Graphics Context Switching
  595.                   + Fast and Arbitrary Window Clipping
  596.                        + Clip rectangles
  597.                        + Clip ID planes
  598.                   + Hardware Cursors
  599.         o Graphics Subsystems Bottlenecks
  600.              + Host vs. Transform vs. Fill Limits
  601.                   + Fill Limits
  602.                   + Transform Limits
  603.                   + Host Limits
  604.              + OpenGL Command Bandwidth
  605.              + Beware of Benchmarks
  606.         o Conclusions
  607.         o References
  608.  
  609. ----------------------------------------------------------------------------
  610.  
  611.    * OpenGL and X, Column 7: Using Open Inventor with GLUT,
  612.      November/December, 1995
  613.         o compressed PostScript format (8 pages)
  614.  
  615.      The source in this article spans pp. 5-8, and is located in:
  616.      toolbox/src/exampleCode/opengl/GLUT/progs/inventor/glutduck.c++
  617.  
  618.      Excerpts:
  619.  
  620.      [First page focused on OpenGL's ubiqutous presence at SIGGRAPH '95,
  621.      which "made it clear that OpenGL is the standard for interactive
  622.      computer graphics."]
  623.  
  624.      [T]his column focuses on the relationship between OpenGL and Open
  625.      Inventor and how the two graphics libraries interact. This column's
  626.      example program demonstrates how to use Open Inventor with the OpenGL
  627.      Utility Toolkit (GLUT).
  628.  
  629.      [Topics explored include:]
  630.  
  631.         o Procedural versus Descriptive
  632.         o Open Inventor in Brief
  633.         o Open Inventor with GLUT
  634.         o Further Information
  635.  
  636. ----------------------------------------------------------------------------
  637.  
  638.    * OpenGL and X, Column 8: Curves and Surfaces in OpenGL,
  639.      January/February, 1996
  640.         o compressed PostScript format (8 pages)
  641.  
  642.      The source in this article spans pp. 6-8, and is located in:
  643.      toolbox/src/exampleCode/opengl/GLUT/progs/examples/molehill.c
  644.  
  645.      This issue's topic is rendering curves and surfaces using OpenGL.
  646.  
  647.      [Topics explored include:]
  648.  
  649.         o Why Curves and Surfaces?
  650.         o Evaluators
  651.         o The GLU NURBS Routines
  652.              + Uniform cubic B-splines
  653.              + Cubic Bezier
  654.              + Uniform cubic B-splines that passes through the endpoints
  655.              + Non-Uniform
  656.              + Rational
  657.              + B-Spline
  658.         o More Information
  659.         o References
  660.  
  661. ----------------------------------------------------------------------------
  662.  
  663.    * OpenGL and X, Column 9: EXIT: A 3D standard for X (finally!),
  664.      March/April, 1996
  665.         o compressed PostScript format (2 pages)
  666.  
  667.      Excerpts:
  668.  
  669.      The long-term benefits -- that every major X vendor has now embraced
  670.      OpenGL, the fastest standard 3D graphics interface available -- are
  671.      enormous.
  672.  
  673. ----------------------------------------------------------------------------
  674.  
  675.    * System Support for OpenGL Direct Rendering, September, 1994
  676.         o html format
  677.         o compressed PostScript (12 pages)
  678.  
  679.      Abstract:
  680.  
  681.      OpenGL's window system support for the X Window System explicitly
  682.      allows implementations to support direct rendering of OpenGL commands
  683.      to the graphics hardware. Rendering directly to the hardware avoids the
  684.      overhead of packing and relaying protocol requests to the X server
  685.      inherent in indirect rendering.
  686.  
  687.      The OpenGL implementation available for Silicon Graphics workstations
  688.      supports direct rendering using virtualizable graphics hardware in
  689.      conjuction with the kernel and X server. The techniques described
  690.      provide "maximum performance" rendering for OpenGL. Some of the issues
  691.      are specific to OpenGL, but most of the techniques described are
  692.      appropriate for the implementation of any high-performance direct
  693.      rendering graphics interface.
  694.  
  695. ----------------------------------------------------------------------------
  696.  
  697.    * X Server Multi-rendering for OpenGL and PEX, January, 1994
  698.         o html format
  699.         o compressed PostScript (17 pages)
  700.  
  701.      Abstract:
  702.  
  703.      ABSTRACT: To support OpenGL(TM) and PEX rendering within the Silicon
  704.      Graphics X server without compromising interactivity, we devised and
  705.      implemented a scheme named multi-rendering. Making minimal changes to
  706.      the X Consortium sample server's overall structure, the scheme allows
  707.      independent processes within the X server's address space to perform
  708.      OpenGL rendering asynchronously to the X server's main thread of
  709.      execution. The IRIX operating system's process share group facility,
  710.      user-level and pollable semaphores, and support for virtualized direct
  711.      access rendering are all leveraged to support multi-rendering. The
  712.      Silicon Graphics implementation of PEX also uses the multi-rendering
  713.      facility and works by converting rendering requests into OpenGL
  714.      commands. Mutli-rendering is contrasted with other schemes for
  715.      improving server interactivity. Unlike co-routines, multi-rendering
  716.      supports multi-processing; unlike multi-threading, multi-rendering
  717.      requires minimal locking overhead.
  718.  
  719. ----------------------------------------------------------------------------
  720.  
  721.    * OpenGL and X, Part 1: An Introduction, November/December, 1993
  722.         o html format
  723.         o compressed postscript (14 pages)
  724.         o glxsimple.c - accompanying source code example
  725.  
  726.      Abstract:
  727.  
  728.      The OpenGL graphics system is a high-performance, window system
  729.      independent 2D and 3D graphics interface. The technology was developed
  730.      by Silicon Graphics and is now controlled by the OpenGL Architecture
  731.      Review Board. OpenGL's GLX extension integrates OpenGL with the X
  732.      Window System. This article describes OpenGL's functionality and how it
  733.      is used with X. A simple OpenGL program using Xlib is presented. OpenGL
  734.      is compared and contrasted with PEX, a 3D graphics interface designed
  735.      specifically for X. The two subsequent articles in this series describe
  736.      how to integrate OpenGL with Xlib and Motif programs.
  737.  
  738. ----------------------------------------------------------------------------
  739.  
  740.    * OpenGL and X, Part 2: Using OpenGL with Xlib, January/February, 1994
  741.         o html format
  742.         o compressed postscript (18 pages)
  743.         o glxdino.c - accompanying source code example
  744.  
  745.      Abstract:
  746.  
  747.      This is the second article in a three-part series about using the
  748.      OpenGL graphics system and the X Window System. A moderately complex
  749.      OpenGL program for X is presented. Depth buffering, back-face culling,
  750.      lighting, display list modeling, polygon tessellation, double
  751.      buffering, and shading are all demonstrated. The program adheres to
  752.      proper X conventions for colormap sharing, window manager
  753.      communication, command line argument processing, and event processing.
  754.      After the example, advanced X and OpenGL issues are discussed including
  755.      minimizing colormap flashing, handling overlays, using fonts, and
  756.      performing animation. The last article in this series discusses
  757.      integrating OpenGL with the Motif toolkit.
  758.  
  759. ----------------------------------------------------------------------------
  760.  
  761.    * OpenGL and X, Part 3: Integrating OpenGL with Motif, July/August, 1994
  762.         o html format
  763.         o compressed postscript (12 pages)
  764.         o paperplane.c - accompanying source code example
  765.  
  766.      Abstract:
  767.  
  768.      The OpenGL graphics system can be integrated with the industry-standard
  769.      OSF/Motif user interface. This article discusses how to use OpenGL
  770.      within a Motif application program. There are two approaches to using
  771.      OpenGL with Motif. One is to render into a standard Motif drawing area
  772.      widget, but this requires each application window to use a single
  773.      visual for its window hierarchy. A better approach is to use the
  774.      special OpenGL drawing area widget allowing windows used for OpenGL
  775.      rendering to pick freely an appropriate visual without affecting the
  776.      visual choice for other widgets. An example program demonstrates both
  777.      approaches. The X Toolkit's work procedure mechanism animates the
  778.      example's 3D paper airplanes. Handling OpenGL errors is also explained.
  779.  
  780. ----------------------------------------------------------------------------
  781.  
  782.    * OpenGL and X, A Technical Overview of OpenGL and the X Window System,
  783.      8th X Technical Conference, January, 1994
  784.         o compressed PostScript slides format, (49 slides)
  785.  
  786.      Topics covered include:
  787.         o Goals of OpenGL, What is OpenGL?
  788.         o Getting Your Hands on OpenGL (licenses)
  789.         o Who's Who of OpenGL (companies implementing)
  790.         o OpenGL API Hierarchy, OpenGL State Machine
  791.         o Utility Library (GLU)
  792.         o OpenGL State Machine Diagram (beginning)
  793.         o OpenGL Main Points (properties)
  794.         o OpenGL Data Flow Diagram
  795.         o OpenGL extensions to X (GLX)
  796.         o Special OpenGL visuals
  797.         o OpenGL Command Syntax, States, Querying States
  798.         o Drawing Geometry, Images and Bitmaps, Point, Line, and Polygon
  799.           Attributes
  800.         o Transformation Flow, Camera Analogy, Transformation functions
  801.         o Processing of Colors (flow, methodology)
  802.         o Alpha Blending, Antialiasing, Lighting [Properties],
  803.         o Texturing (this page--36--can take a LONG time to display thru
  804.           xpsview)
  805.         o Texture Mapping Uses, Atmospheric Effects, Hidden Surface Removal
  806.         o Accumulation Buffer, Stencil Planes
  807.         o Feedback & Selection, Evaluators
  808.         o Display Lists [Routines] [Editing], Text
  809.         o Summary, For More Information
  810.  
  811. ----------------------------------------------------------------------------
  812.  
  813.    * How OpenGL integrates with the X Window System, 8th X Technical
  814.      Conference, January, 1994
  815.         o compressed showcase format (53 slides)
  816.  
  817.      Topics covered include:
  818.         o Overview of OpenGL's integration with the X Window System
  819.         o Survey of the GLX API
  820.         o Basic Usage of OpenGL with X
  821.         o Selecting the right visual
  822.         o Colormaps
  823.         o Event Handling: Exposes, Resizes, Input
  824.         o Double Buffering
  825.         o Font Support
  826.         o Overlays and Underlays
  827.         o Display Lists
  828.         o Mixing X and OpenGL
  829.         o Motif Integration
  830.  
  831. ----------------------------------------------------------------------------
  832.  
  833.    * The OpenGL Graphics Interface, (introduction to OpenGL)
  834.         o html format
  835.         o compressed PostScript (21 pages)
  836.  
  837.      Abstract:
  838.  
  839.      Graphics standards are receiving increased attention in the computer
  840.      graphics community as more people write programs that use 3D graphics
  841.      and as those already possessing 3D graphical programs want those
  842.      programs to run on a variety of computers.
  843.  
  844.      OpenGL is an emerging graphics standard that provides advanced
  845.      rendering features while maintaining a simple programming model. Its
  846.      procedural interface allows a graphics programmer to describe rendering
  847.      tasks, whether simple or complex, easily and efficiently. Because
  848.      OpenGL is rendering-only, it can be incorporated into any window system
  849.      (and has been, into the X Window System and the soon-to-be-released
  850.      Windows NT) or can be used without a window system. Finally, OpenGL is
  851.      designed so that it can be implemented to take advantage of a wide
  852.      range of graphics hardware capabilities, from a basic framebuffer to
  853.      the most sophisticated graphics subsystems.
  854.  
  855. ----------------------------------------------------------------------------
  856.  
  857.    * The Design of OpenGL Graphics Interface (philosphy and details)
  858.         o html format
  859.         o compressed PostScript (10 pages)
  860.  
  861.      Abstract:
  862.  
  863.      OpenGL is an emerging graphics standard that provides advanced
  864.      rendering features while maintaining a simple programming model.
  865.      Because OpenGL is rendering-only, it can be incorporated into any
  866.      window system (and has been, into the X Window System and a
  867.      soon-to-be-released version of Windows) or can be used without a window
  868.      system. An OpenGL implementation can efficiently accommodate almost any
  869.      level of graphics hardware, from a basic framebuffer to the most
  870.      sophisticated graphics subsystems. It is therefore a good choice for
  871.      use in interactive 3D and 2D graphics applications.
  872.  
  873.      We describe how these and other considerations have governed the
  874.      selection and presentation of graphical operators in OpenGL. Complex
  875.      operations have been eschewed in favor of simple, direct control over
  876.      the fundamental operations of 3D and 2D graphics. Higher-level
  877.      graphical functions may, however, be built from OpenGL's low-level
  878.      operators, as the operators have been designed with such layering in
  879.      mind.
  880.  
  881.      CR Categories and Subject Descriptors: I.3.3 [Computer Graphics]:
  882.      Picture/Image Generation; I.3.7 [Computer Graphics]: Three-Dimensional
  883.      Graphics and Realism
  884.  
  885. -------------------------------------------------------------------------------
  886.  
  887. Copyright ⌐ 1995-96, Silicon Graphics, Inc.
  888.